using StudentManagement.Domain.Entities;

namespace StudentManagement.Domain.Repositories;

public interface IUserRepository : IRepository<User>
{
    Task<User> GetUserByUsernameAsync(string username);
    Task<User> GetUserByEmailAsync(string email);
    Task<bool> UsernameExistsAsync(string username);
    Task<bool> EmailExistsAsync(string email);
    Task<IEnumerable<User>> GetUsersByRoleIdAsync(int roleId);
    Task<IEnumerable<User>> SearchUsersAsync(string keyword);
}